package com.lk.sys.dao;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface SysUserRoleDao {

    /**
     * 通过用户id查询用户相关角色id信息
     * @author Lukang
     * @date 2022/1/6 下午9:54
     * @param id
     * @return java.util.List<java.lang.Integer>
     */
    @Select("select role_id from sys_user_roles where user_id=#{id}")
    List<Integer> findRoleIdsByUserId(Long id);

    /**
     * 添加用户界面中，将用户id与角色id绑定，插入到用户角色关系表中
     * @author Lukang
     * @date 2022/1/5 下午10:01
     * @param userId
     * @param roleIds
     * @return int
     */
    int inserObjects(@Param("userId")Integer userId, @Param("roleIds")Integer[] roleIds);

    /**
     * 基于角色id删除角色用户关系
     * @author Lukang
     * @date 2021/12/8 下午9:59
     * @param roleId
     * @return int
     */
    @Delete("delete from sys_user_roles where role_id=#{roleId}")
    int deleteObjectByRoleId(Integer roleId);

    /**
     * 基于用户id删除对应的角色信息
     * @author Lukang
     * @date 2022/1/7 下午9:41
     * @param userId
     * @return int
     */
    @Delete("delete from sys_user_roles where user_id=#{userId}")
    int deleteRoleIdByUserId(Integer userId);
}
